package com.home_school_platform.dao;

import com.home_school_platform.entity.pojo.Problem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 问题Dao接口
 * @author Lin
 */
@Mapper
@Repository
public interface ProblemDao {

    /**
     * 插入问题
     * @param problem 问题实体
     * @return 影响行数
     */
    Integer insertProblem(Problem problem);

    /**
     * 删除问题
     * @param id 问题id
     * @return 影响行数
     */
    Integer deleteProblem(Integer id);

    /**
     * 更新问题
     * @param problem 问题实体
     * @return 影响行数
     */
    Integer updateProblem(Problem problem);

    /**
     * 查询所有问题
     * @param currentPage 当前页
     * @param pageSize 每页显示多少条记录
     * @return 问题列表
     */
    List<Problem> listProblem(@Param("currentPage") Integer currentPage,
                              @Param("pageSize") Integer pageSize);

    /**
     * 模糊查询问题
     * @param keyword 关键字
     * @param currentPage 当前页
     * @param pageSize 每页显示多少条记录
     * @return 问题列表
     */
    List<Problem> listProblemLike(@Param("keyword") String keyword,
                                  @Param("currentPage") Integer currentPage,
                                  @Param("pageSize") Integer pageSize);

    /**
     * 统计问题数量
     * @return 问题数量
     */
    Integer countProblem();
}
